package com.soft.javase.ch09.set;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/5/4
 *
 * Set 接口   -   Map<K,V> key键对应的就是Set
 * 1.存取顺序不一致
 * 2.不允许重复存放元素
 *
 * HashSet 实现类
 * 1.存取顺序不一致
 * 2.不允许重复存放元素，根据equals()和hashCode()
 * 3.线程不安全
 * 4.允许存放null值
 * 5.数据结构
 *     5.1 JDK1.8 之前 “数组+链表”
 *     5.2 JDK1.8 之后 “数组+链表+红黑树”
 *
 * TreeSet 实现类
 * 1.存取顺序不一致
 * 2.进行对元素进行排序
 *      2.1 元素自身具备比较性，实现Comparable接口，重写compareTo()
 *      2.2 容器自身具备比较性，创建容器时需要传入比较器Comparator，重写compare()
 * 3.不允许重复存放元素，根据比较的原则return 0;
 * 4.线程不安全
 * 5.不允许存放null值
 * 6.数据结构：“红黑树”
 *
 * LinkedHashSet 实现类
 * 1.存取顺序一致，因为多了一条链表进行维护存取顺序
 * 2.不允许重复存放元素，根据equals()和hashCode()
 * 3.线程不安全
 * 4.允许存放null值
 * 5.数据结构
 *     5.1 JDK1.8 之前 “数组+链表”+链表
 *     5.2 JDK1.8 之后 “数组+链表+红黑树”+链表
 *
 * CopyOnWriteArraySet 实现类
 * 线程安全 JUC并发包
 */
public class SetDemo {
}
